package com.iplant.basic.service;

import java.util.List;

import com.iplant.base.po.Pagination;
import com.iplant.base.po.ServiceResult;
import com.iplant.basic.service.po.bms.BMSEmployee;
import com.iplant.basic.service.po.fmc.*;
import com.iplant.basic.service.po.sfc.SFCFile;

public interface FMCService {

	ServiceResult<List<FMCShift>> FMC_QueryShiftList(BMSEmployee wLoginUser, int wFactoryID,int wWorkshopID,
													 int wWorkAreaID,int wStationID,Pagination wPagination);

	// 工厂模型：工厂&事业部&车间&产线&工位

	// 制造资源
	ServiceResult<Integer> FMC_UpdateResource(BMSEmployee wLoginUser, FMCResource wResource);

	ServiceResult<Integer> FMC_DeleteResource(BMSEmployee wLoginUser, FMCResource wResource);

	ServiceResult<Integer> FMC_ActiveResource(BMSEmployee wLoginUser, FMCResource wResource, int wActive);

	ServiceResult<FMCResource> FMC_QueryResource(BMSEmployee wLoginUser, int wID);

	ServiceResult<List<FMCResource>> FMC_QueryResourceList(BMSEmployee wLoginUser, String wResourceCode,
			String wResourceName, List<Integer> wStationID, int wWorkType, int wTypeID, int wProductID, int wResourceID,
			int wActive, Pagination wPagination);


	// 工位

	ServiceResult<FMCStation> FMC_QueryStation(BMSEmployee wLoginUser, int wID, String wCode,int wHasResource);

	ServiceResult<List<FMCStation>> FMC_QueryStationList(BMSEmployee wLoginUser, int wFactoryID, int wWorkshopID,
			List<Integer> wLineID, int wWorkAreaID, int wDeviceID, String wName, int wActive, int wHasResource,
			Pagination wPagination);

	// 工装

	ServiceResult<Integer> FMC_UpdateStationFixtures(BMSEmployee wLoginUser, FMCStationFixtures wStationFixtures);

	ServiceResult<Integer> FMC_DeleteStationFixtures(BMSEmployee wLoginUser, FMCStationFixtures wStationFixtures);

	ServiceResult<Integer> FMC_ActiveStationFixtures(BMSEmployee wLoginUser, FMCStationFixtures wStationFixtures,
			int wActive);

	ServiceResult<FMCStationFixtures> FMC_QueryStationFixtures(BMSEmployee wLoginUser, int wID, String wCode);

	ServiceResult<List<FMCStationFixtures>> FMC_QueryStationFixturesList(BMSEmployee wLoginUser, int wFactoryID,
			int wWorkshopID, int wLineID, int wWorkAreaID, List<Integer> wStationID, int wDeviceID, String wName,
			int wActive, Pagination wPagination);

	ServiceResult<Integer> SFC_UploadFile(BMSEmployee wLoginUser, SFCFile wSFCFile);

	ServiceResult<Integer> SFC_DeleteFile(BMSEmployee wLoginUser, int wFileID);
}
